import { defineStore } from 'pinia'

export const useCalculatorStore = defineStore('calculator', {
  // 定义数据（state）
  state: () => ({
    number1: 0,        // 第一个数字
    number2: 0,        // 第二个数字
    operation: '+',    // 操作符
    result: 0          // 计算结果
  }),
  
  // 定义操作数据的方法（actions）
  actions: {
    // 设置第一个数字
    setNumber1(value) {
      this.number1 = parseFloat(value) || 0
    },
    
    // 设置第二个数字
    setNumber2(value) {
      this.number2 = parseFloat(value) || 0
    },
    
    // 设置操作符
    setOperation(operation) {
      this.operation = operation
    },
    
    // 执行计算
    calculate() {
      switch (this.operation) {
        case '+':
          this.result = this.number1 + this.number2
          break
        case '-':
          this.result = this.number1 - this.number2
          break
        case '*':
          this.result = this.number1 * this.number2
          break
        case '/':
          // 防止除零错误
          this.result = this.number2 !== 0 ? this.number1 / this.number2 : 0
          break
        default:
          this.result = 0
      }
    },
    
    // 清除所有数据
    clearData() {
      this.number1 = 0
      this.number2 = 0
      this.operation = '+'
      this.result = 0
    }
  },
  
  // 持久化配置
  persist: {
    enabled: true,  // 启用持久化
    strategies: [
      {
        key: 'calculator',  // 存储的key名称
        storage: localStorage,  // 使用localStorage
        paths: ['number1', 'number2', 'operation', 'result']  // 需要持久化的字段
      }
    ]
  }
})